home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / scheme / scheme2c / rec-28se.pat / shlibs / shlibscx / makefile < prev    next >
Encoding:
Makefile  |  1994-06-30  |  3.7 KB  |  128 lines

  1. ##
  2. ## Build shared libraries for Scheme->C X11 interface.
  3. ## Built under ISC 386/ix 2.0.2
  4. ##
  5.  
  6. ## Edit these
  7. BINDIR = /usr/local/bin
  8. LIBDIR = /usr/local/lib
  9. CPUDIR = /home/28sep90
  10.  
  11. ## I hope you can leave the rest alone
  12. LIBS=${LIBDIR}/schemetoc/libsc_s.a /lib/libc_s.a
  13. libraries = libscx libc
  14. libscx_a = ${CPUDIR}/xlib/scxl.a
  15. libc_a = /lib/libc.a
  16. libc_s_a = /lib/libc_s.a
  17.  
  18. all: scixl_s
  19.  
  20. scixl_s:  libscx_s
  21.     scc -i -m xlib -o scixl_s libscx_s.a ${LIBS}
  22.  
  23. ##
  24. ## The scheme->c xlib modules.
  25. ##
  26. libscx = libscx/depth.o libscx/screen.o libscx/visual.o libscx/xarc.o\
  27.  libscx/xchar2b.o libscx/xcharstr.o libscx/xclasshint.o libscx/xcolor.o\
  28.  libscx/xcomstat.o libscx/xevent.o libscx/xfontprop.o libscx/xfontstr.o\
  29.  libscx/xgcvalues.o libscx/xhostaddr.o libscx/xiconsize.o libscx/ximage.o\
  30.  libscx/xkbdcont.o libscx/xkbdstat.o libscx/xlib.o libscx/xlibCONST.o\
  31.  libscx/xlibSTUBS.o libscx/xlibTYPES.o libscx/xmodmap.o libscx/xpoint.o\
  32.  libscx/xrectangle.o libscx/xrmoption.o libscx/xrmvalue.o libscx/xsegment.o\
  33.  libscx/xsizehints.o libscx/xstdcmap.o libscx/xswinattr.o libscx/xtext.o\
  34.  libscx/xtext16.o libscx/xtimecoord.o libscx/xvinfo.o libscx/xwinattr.o\
  35.  libscx/xwinchgs.o libscx/xwmhints.o libscx/xws10.o libscx/xws2.o\
  36.  libscx/xws3.o libscx/xws4.o libscx/xws5.o libscx/xws6.o libscx/xws7.o\
  37.  libscx/xws8.o libscx/xws9.o libscx/xwss.o
  38. ##
  39. ## The X11 libraries.
  40. ##
  41. libx11 = /usr/lib/libX11.a
  42. ##
  43. ## Additional libc support.
  44. ##
  45. libc = libc/getpwnam.o libc/getpwuid.o libc/getuid.o libc/perror.o\
  46.   libc/umask.o libc/getpwent.o
  47.  
  48. ##
  49. ## The partial scheme->c x library
  50. ##
  51. libscx_s: libscx.sl
  52.     -rm libscx_s libscx_s.a
  53.     mkshlib -s libscx.sl -t libscx_s -h libscx_s.a 2> libscx.err
  54.  
  55. libscx.sl: libscx.o libscx.export
  56.     echo '##'                    > libscx.sl
  57.     echo '## libscx.sl - scheme->c x library'    >> libscx.sl
  58.     echo '#address .text 0xB1000000'        >> libscx.sl
  59.     echo '#address .data 0xB1400000'        >> libscx.sl
  60.     echo '#target ${LIBDIR}/schemetoc/libscx_s'    >> libscx.sl
  61.     echo '#branch'                    >> libscx.sl
  62.     nm -p libscx.o |\
  63.       sort |\
  64.       nawk '/ T .*__init/{print "  " $$3 "  " ++nbt}'>> libscx.sl
  65.     echo '#objects'                    >> libscx.sl
  66.     echo libscx.o                    >> libscx.sl
  67.     echo '#objects noload'                >> libscx.sl
  68.     echo ${LIBDIR}/schemetoc/libsc_s.a        >> libscx.sl
  69.     echo /lib/libc_s.a                >> libscx.sl
  70.     echo '#hide linker *'                >> libscx.sl
  71.     echo '#export linker'                >> libscx.sl
  72.     cat libscx.export                >> libscx.sl
  73.     cat xlib.export                    >> libscx.sl
  74.  
  75. libscx.o: ${libraries}
  76.     ld -x -r -o tmp.o ${libscx} ${libx11} ${libc}
  77.     nm -p tmp.o | \
  78.       nawk '/ C /{ print "int " $$3 "[" int(($$1+3)/4) "]={0};" }'\
  79.       > tmp_defs.c
  80.     ${CC} -c tmp_defs.c
  81.     ld -x -r -o libscx.o tmp_defs.o tmp.o
  82.  
  83. libscx.export: hexname
  84.     cat ${CPUDIR}/xlib/*.sch | hexname > libscx.export
  85.  
  86. hexname: hexname.sc
  87.     scc -o hexname hexname.sc
  88.  
  89. libscx.get: libscx.o
  90.     nm -p ${LIBS} |\
  91.       nawk '/ A [_a-zA-Z]/{ print $$3 }' |\
  92.       sort > absolute
  93.     nm -p libscx.o | nawk '/ U /{ print $$3 }' | sort > undefined
  94.     comm -13 absolute undefined > libscx.get
  95.  
  96. libscx:
  97.     -mkdir libscx
  98.     cd libscx; ar x ${libscx_a} `echo ${libscx} | sed s/libscx.//gp`
  99. libc:
  100.     -mkdir libc
  101.     cd libc; ar x ${libc_a} `echo ${libc} | sed s/libc.//gp`
  102.  
  103. ##
  104. ## Miscellaney
  105. ##
  106. clean:
  107.     -rm libscx.o
  108.     -rm tmp.o tmp_defs.c tmp_defs.o
  109.     -rm libscx.sl libscx.err
  110.     -rm libscx.get undefined absolute
  111. all-clean:
  112.     -rm -fr ${libraries}
  113.     -rm libscx_s libscx_s.a scixl_s
  114.     -rm hexname hexname.c libscx.export
  115. install: libscx_s scixl_s
  116.     -rm ${LIBDIR}/schemetoc/libscx_s
  117.     cp libscx_s ${LIBDIR}/schemetoc
  118.     strip ${LIBDIR}/schemetoc/libscx_s
  119.     -rm ${LIBDIR}/schemetoc/libscx_s.a
  120.     -rm ${LIBDIR}/schemetoc/libscx.a
  121.     cp libscx_s.a ${LIBDIR}/schemetoc/libscx_s.a
  122.     ln ${LIBDIR}/schemetoc/libscx_s.a ${LIBDIR}/schemetoc/libscx.a
  123.     -rm ${BINDIR}/scixl_s
  124.     -rm ${BINDIR}/scixl
  125.     cp scixl_s ${BINDIR}
  126.     strip ${BINDIR}/scixl_s
  127.     ln ${BINDIR}/scixl_s ${BINDIR}/scixl
  128.